Go Recorder is a package with which to record or play the game of Go, or study Go problems, openings etc.

This (vD1.1) is a demonstration version, which you are free to copy and distribute, as long as this ReadMe file accompanies it. This version is fully functional, except that:
	 it doesnt have any of the improvements or great features which will be in the final version (as a result of your feedback, and further work on my part!)
	 it prints DEMO on the screen and printouts every so often (rude I know, but just to jog your conscience...)
	 it doesnt have a couple of planned features, such as Newton Connection Kit compatibility (which will enable you to import/export games and problems from your Mac) and import/export to SmartGo format

Full documentation is in the accompanying Word document. A plain text form without diagrams is appended here.

To receive the release version, please send US$25, or near equivalent in round figures in your currency, to
	Neville Smythe
	28 Fergusson Crescent
	Deakin, ACT 2600
	AUSTRALIA

Please send any comments, suggestions or queries to me at the above address or by email to 
  Neville.Smythe@anu.edu.au.

_____________________

Documentation (Plain text, diagrams deleted)  
                                          
After a short setup period, an empty Go board will be displayed, with some control buttons and information displayed beneath it. Placing stones on the board is simply a matter of tapping the board; stones will alternate black and white automatically.


Using the controls

Normal mode: When this button is hilighted (displayed with the square border), tapping the board results in a stone being placed at the tap point, with colour alternating. 
NB The move is added after the current move and before any next move if any. If you have left out a single move when recording, this may be what you want, but it may result in the alternation of colours being disturbed: see the Entry editor below to correct this condition.

If there is already a stone displayed at the tap point, then no move is entered but a check is made to see if the stone is part of a group which has been captured, in which case the  captures are removed and added to the capture tally; such stones are recorded as being  captured by the last stone played in the capturing wall. If there is a notation at the tap  point, a new stone is entered which captures the notation (ie, removes it from the  display). If you are entering a stone in the middle of a game,  and there is a later stone at  the tap point, a beep is emitted and no new entry is made; if there is a later notation at the  point, the new entry is accepted (the notation will appear on top of the stone when  appropriate). 

 Double-tap on this button to enter a Pass move.
This is how the Normal mode button is displayed when not selected. Tap it once to  select this mode.

Black or White mode: When one of these buttons is selected, entry results in only black or  white stones being placed respectively.

Delete mode: Tap a displayed move (stone or notation) to remove it from the game (do not  use this button for captures however  see below).

Select mode: Tap a point on the board  if there is a move (stone or notation) at that point  (even if not shown because it occurs is later in the game than the current move) the  board will display all moves in the game up to the selected move
 OR 
 Drag an existing move to another point on the board or remove it entirely by dragging it  off the board (a curve is drawn following the penpoint to the newly selected position)

Capture mode: Tapped moves (stones ans notations) are treated as captures of the current  move  they are removed from the display, added to the current move capture comments  and to the capture tallies which are displayed to the right of this button (they show the  captures up to the current move only). Use this button to remove dead stones at the end of  the game, no longer relevant notations, etc

Numbering: Stones will be displayed with move numbers. You may choose a first and last  number to be displayed by entering numbers into the two input boxes to the right of this  button:
  if the button is not hilighted, no moves are numbered
  if either the first or last number box is empty, the current move (last move    played so far in the currently displayed portion of the game) will be indicated    with a + unless it already carries a letter notation; this mode is useful for    quickly keeping track of the last move played, it is also much faster than    turning on full numbering
  if both first and last boxes are filled in  just write appropriate numbers  then    moves between those two numbers will be numbered on the board
  BUT  there is only room for two digits on each stone, so hundreds digits are not    shown; moreover updating of the display is much slowed down, and a lot of    precious memory is used, by having lots of numbers displayed 
  SO  it is best to keep the range of numbers down to something small!
  FURTHER: switching between numbering modes can be pretty slow, particularly for    a full game display of 200 or more moves (as is any operation which forces a    complete redraw of a very full board)
 It is also possible have move number 1 assigned to a move other than the first game   move (for example, you would not normally want to number the handicap moves or   the setup moves in a problem). Use the Entry editor (see below) to set the last   unnumbered move
 
 Number settings also affect the printed output of a game record  see Printing below.

The current move is displayed in text form to the left of these mode buttons, in the box with heavy frame. The move number (if any), colour and position of the move, any attached single character notation shown on the stone (if not numbered), any captures made by this move, and any (short) comment you wish to attach to this move, are displayed. A move need not be associated with a stone  it can be just a notation marking on an empty point of the board. In fact it does not even have to have a position, it can be a pure comment line: see the Entry editor below for  full details. The first entry (Entry 0) is always just a comment; I recommend it  and the next few entries be used for recording the players, komi, tournament, dates, winner, venue and other such information. All comment lines before the first  true move (stone or notation) are printed along with diagram.

The current move box accepts pen input as follows: 
  single-tap to flash the current move on the board (if it is a stone)
  double-tap to bring up the Entry editor (see below)
  line-thru to automatically add a new comment entry immediately following this entry
The previous move  (if any)  is displayed just above the current entry. It accepts pen input:
  single-tap to make this entry the current entry
  double-tap to go back 2 entries
  line-thru to go back 5 entries
The next move  (if any) is displayed just below the current entry. It accepts pen input:
  single-tap to make this entry the current entry
  double-tap to go forward 2 entries
  line-thru to go forward 5 entries

The three entry info boxes as a whole also accept two other pen gestures:
  scrub over the 3 information boxes with at least 4 zig-zag lines to bring up some    choices: you may delete the current entry, open the Entry Editor, or go directly to   another entry selected by move number or entry number
 
  a vertical line to hide the three boxes altogether: they are replaced by a small button   which will re-show the info boxes. This may result in slightly faster response, as this   information does not have to be updated. The current move will be taken to the end   of the game; stones can be added but not deleted. 

Below the entry information boxes is a slider control, showing the current portion of the full game.
Tap or slide this control to move to a different part of the game. (Sliding from the zero to full requires the complete game display to be reconstructed. This can be quite slow for a long game.)

The Title of the game is displayed above the board. Use the Game dialog to set this title.
 Tap the title to verify the game. 

 It is possible for a game record to become corrupted, as there is considerable information  which must be kept consistent. Corruption could occur because of inconsistent data you  enter when editing a game in the Entry Editor, a Newton reset while editing, or because of a bug in the program (please  tell me!!!), or possibly because of a change in the record in the NCK or someone fooling  about with soup editors! The verification process will usually be able to correct such  errors, restoring the game to a consistent state. Details of errors encountered are printed in  the Inspector if it is  connected.

The Status bar buttons:

This button, toggles the board between a plain board and one with lettered and numbered  sides for easy location of algebraic notation.

The Routing Action button enables Printing, Faxing, Beaming, Mailing and Saving games
  Print and Fax : You may print a 
  Diagram, which is the currently displayed screen diagram (so includes moves only    up the the current move) and also the title, initial comments, and captures    made between the start number as set in the Numbering box and the current    move, or between move 1 and the current move if numbering is not turned on.    NB captured  stones will NOT appear in the printout as in a tradional record
   Text, which is a text record of the current section of the game  it is intended to    accompany the Diagram, and so records only those moves made numbered    between the start number and the current move if a numbering is turned on
  Full Text, which is a full text record up to the last entry
 
  Beam : You can beam a game to another Newton (I hope  has not been tested)

  Mail : You can email a game record (I hope  has not been tested)

  Save: The displayed game is treated as a working game  it is remembered when you   close Go Recorder, and will re-appear when Go Recorder is re-launched, but will be   discarded when you want to enter a new game. Tap this selection to save the latest   version of the game permanently in an archive; if it has been previously saved, it   will overwrite the previous version. Use the Game dialog to set the game title,    save a copy without destroying the previous version, or reload a saved game. (You   can also save from the Game dialog; using the Action button however is faster as it   does not require reconstructing the display).

The Undo button will undo up to the last two input moves, or slide control changes, but not much else. The Find and Assist buttons do nothing relevant in Go Recorder.

Note on entries: an entry in the game record may be
 a Black or White stone,
 a single character Notation on the board, or
 a Comment
 
 Stones and Notations have a position, which may be A1 to T19 (or Pass for a stone)
 Comment entries do not have a position

 Each entry has an Entry Number (unique, determined strictly by order of entry, shown   only in the title of this editor) 
 A Stone may have Move Number, if it is after the last unnumbered move.
 A Stone may have a single character notation, and may have a comment attached.
 A Notation may have a comment attached.
 All kinds of entries may make captures (for example, you may wish to collect all dead   stones at the end of the game into the captures for a final comment entry; notations   may be captured when they are no longer relevant to the display). However Pass   moves and Comment entries cannot be captured.


Entry Editor:
This dialog is invoked by double tapping or scrubbing on the current move box. Editing the middle of  a  large game record graphically can be very slow, this method is usually faster; it also enables addition of comments and notations.

The Data section, the top half of the editor, allows you to see and edit:
  the position of the entry
  the colour of the move (Black or White for stones, Notation for a letter notation on the   board not associated with a stone, or Comment for a pure comment line)
  the captures made by the entry (enter positions D4 etc)
  a single character notation
  a comment attached to the move
  any capturing move (information only, not editable)
  you may also set this move to be the last unnumbered move

Any changes made to the shown entry will be checked for consistency, sounding a beep if the change is unacceptable; it is allowed to position an entry on top of or under another entry however  so that you can move entries around! A warning will be given if this occurs. If you are warned that an entry hits another, you will create an inconsistent game unless you correct one or other of the entries. Placing a stone over a notation is OK  the notation will automatically be captured, you do not need to add it to the list of captures; placing a stone under a notation is also OK.

Changes made will be accepted into the game record when you close the editor in the normal way , but also if you use one of the navigation buttons (next move, etc).

The Action section in the lower half of the dialog allows you to use this dialog to enter a game record from a text record instead of diagrammatically:
  < and > change the selected entry to the previous and next entries respectively    (changes to the current move are accepted)
  Go to # moves to an entry selected by entry number or move number
  (changes to the current move are accepted)
  Revert restores the current move to to its original data
  Add entry next adds a comment move after the current move (accepting any changes)
  Add black next adds a black move after the current move (accepting any changes)
  Add white next adds a white move after the current move (accepting any changes)
  End game here discards all later moves in the game (but you are must confirm)
  Remove this entry throws away the current entry (without confirmation and cannot be   cancelled or undone oops!)

If, selecting an entry for editing, the colour of the move is not different from the previous move,  you will be offered the opportunity to change the colour of this move and succeeding  moves until alternation is restored.


Game Dialog:
This dialog is invoked by tapping the Game button. 

The top half of the dialog refers to the currently displayed game. You may:
  edit the title of the game
  create a new game, discarding the current display 
  save the currently displayed game; if previously saved, the former version will be    overwritten
  save as, that is, save the game as a new archive entry, leaving any former version    unchanged
  revert to a previously saved version (if one exists), discarding changes to moves or title.

  the currently used memory usage is also shown. The used memory is approximate; it   uses as a reference point the memory available when Go Recorder opened  it could   even become negative if other packages are closed or removed! In any case it is   approximate, as the system may release or require blocks of memory at any time.   The free memory is however an indication of how much larger your game can be   made before running into trouble  if the free memory is less than the used    memory, such things as printing or duplicating may become impossible!  Tap on an   archived game to update the memory display (some detritus may be cleared away).

The lower half refers to previously saved games (in internal memory or on a card). A list of all available games is shown, together with the memory they occupy (when stored, games are highly compressed). Tap on a list entry to select; slide the pen up or down to scroll the list. Once a game has been selected, you may:
  load the selected game into the display, discarding the current game
  delete the game from the stored games
  duplicate the game ( copy is added the title); the displayed game is not changed
  move the game from internal storage to card or vice versa (for example if you want to   move the game from one card to another)
  print, fax, beam or email the game by selecting the Routing action button. Note when a   beamed game is received, it will be stored in the game archive.
 

Bugs, Comments etc

Please send any comments, suggestions for improvements, and most important, bug reports to

Neville Smythe
28 Fergusson Crescent
Deakin, ACT 2600
AUSTRALIA

or Internet email:    neville.smythe@anu.edu.au

version history
1.1 fixed more bugs, including crash on first launch;
      captures and navigating  now much faster, only occasionally needs to redraw the
      screen from scratch and even less often build arrays (which can take 20 secs)

